This relates generally to enabling the authentication of information stored in non-volatile memory.
In many cases, during an initial booting of a processor-based system, the code that is available is limited. The code may be limited to information that is available on a boot read only memory (ROM). It may also be desirable to access information on a non-volatile memory, such as a flash memory, in association with the boot process. However, the host processor may know that it can trust what is in the boot ROM on board its own system, but may have no basis for having confidence in the integrity of information on an external memory.
As one possible application, a cellular telephone may have a host processor, a boot ROM, and a flash memory. The concern is that if the host, trusting data contained on the flash memory, uses that information to boot, the system could be corrupted. For example, the code in the flash might be altered by an unscrupulous user to obtain free phone service or to alter or copy the boot code.
Thus, authenticating the information on the external memory may be desirable. Generally, such authentication may take an amount of time. In the application of a phone, this may mean that, when the phone initially is turned on, it takes some amount of time for the phone to boot up and begin operating. In addition, every time it is necessary to access additional information from the non-volatile memory, an authentication protocol may be implemented which may be somewhat time consuming.